<?php
/*
 * 取り扱い説明できてない書:
 *
 * ここに書いてあるものを使うときはphpコードの上のほうに
 * require '<このファイルへのパス>/n2_util.php';
 * って書く。
 *
 * 例: require './sample.php';
 */


/**
 * SQLを大体自動で実行して、ForEachで使いやすく加工するアレ。
 *
 * foreach (queryDB("SQL文") as $res) {
 * 	print $res['列名'];
 * }
 * みたいな感じで使う。
 *
 * @param $sql string
 * 実行したいSQL文
 *
 * @param $err string
 * データが1件も無かった時のエラー文(任意)
 *
 * @return 「連想配列に入った戻り値」が入っている配列
 */
function queryDB($sql, $err = "データが1件もありませんでした") {
	// DB設定のインポート
	require dirname(__FILE__).'./conf/db.php';

	// DBに接続
	$db = mysql_connect($db_address, $db_username, $db_password)
		or die("Failed to connect server: ".mysql_error());

	// データベースを選択
	mysql_select_db($db_usedb, $db)
		or die("Failed to select database: ".mysql_error());

	// クエリーの実行
	$query = mysql_query($sql, $db)
		or die("Failed to execute query: ".mysql_error());

	// 戻り値に使う変数を初期化
	$ary = array();

	// 空っぽじゃなかったら
	if(mysql_num_rows($query)) {
		// 行の取り出し
		while($res = mysql_fetch_assoc($query)) {
			$ary[] = $res;
		}
	} else {
		// データが0件だぜって送信
		$ary[] = array("err" => $err);
	}
	// DBから取り出した情報を格納する領域を開放
	mysql_free_result($query);
	// DBから切断
	mysql_close($db);

	return $ary;
}

/**
 * SQLを大体自動で実行して、DBのデータを編集するアレ。
 *
 * @param $sql string
 * 実行したいSQL文
 *
 * @param $err string
 * データの追加に失敗した時のエラー文(任意)
 *
 * @return エラーメッセージが入ってる連想配列
 */
function executeDB($sql, $err = "データの追加に失敗しました") {
	// DB設定のインポート
	require dirname(__FILE__).'./conf/db.php';

	// DBに接続
	$db = mysql_connect($db_address, $db_username, $db_password)
		or die("Failed to connect server: ".mysql_error());

	// データベースを選択
	mysql_select_db($db_usedb, $db)
		or die("Failed to select database: ".mysql_error());

	// クエリーの実行
	$exec = mysql_query($sql, $db);
	//	or die("Failed to execute query: ".mysql_error())

	// 戻り値に使う変数を初期化
	$ary = array();

	// SQL実行でエラーが出たら
	if(!$exec) {
		// エラーメッセージと詳細を送信
		$ary[] = array("err" => $err, "errdetail" => mysql_error());
	}

	// DBから切断
	mysql_close($db);

	return $ary;
}